草庐IT

C++ bool 运算符==

全部标签

c# - 如何让 newtonsoft 将 yes 和 no 反序列化为 bool 值

注意:我已在此提要底部提供了解决方案。我有一个C#Win8应用程序,我正在反序列化一些如下所示的json:{'Unit':[{'name':'House123',isAvailable:'no'},{'name':'House456',isAvailable:'yes'}]}进入一个使用这个接口(interface)的类:publicinterfaceIUnit{stringName{get;}boolisAvailable{get;}}但是Newtonsoft抛出一个错误:Unexpectedcharacterencounteredwhileparsingvalue:n.Path'U

c# - 如果 bool 数组中的所有元素都为真?

我在使用array.All时遇到困难功能。privateboolnoBricksLeft(){bool[]dead=newbool[brick.Length];for(inti=0;i我想知道如何实现if(dead.All(dead[]==true))? 最佳答案 您可以简单地使用lambda表达式:if(dead.All(x=>x))给你usingSystem.Linq的IEnumerable.All方法。会成功的。此外还有一个if返回答案的语句是无用的,因此您可以将其重写为:privateboolnoBricksLeft(){b

c# - 如何重新解释将 float 转换为 int?是否有用于 'this' 转换的非静态转换运算符或用户定义的赋值运算符?

这个问题在这里已经有了答案:Convertintbitstofloatbits(8个答案)关闭2年前。1.我如何重新解释将float转换为int(或将double转换为long)?floatf=2.0f;inti=(int)f;//causesconversion我只想将位模式从f复制到i。如何做到这一点?2。C#中的隐式和显式运算符使用一个中间对象,因为运算符函数是静态的publicstaticimplicitoperatorMyClass(doubles){returnnewMyClass(s);}....MyClassm=2.2;//thiscodeuses'm'andonein

c# - 将运算符存储在变量中

有没有办法将运算符存储在变量中?我想做这样的事情(伪代码):voidMyLoop(intstart,intfinish,operatorop){for(vari=start;i然后我可以像这样调用这个方法:MyLoop(15,45,++);MyLoop(60,10,--);C#中有这样的东西吗? 最佳答案 我想是这样的。您不定义运算符,而是定义一个函数(lambda),它会为您进行更改。voidMyLoop(intstart,intfinish,Funcop){for(vari=start;i然后我可以像这样调用这个方法:MyLoo

c# - 如何避免在 C# 中出现不可能的 bool 状态?

考虑这个函数,您可以将其视为真值表:publicFoodoSomething(boola,boolb){if(a&&b)returndoAB();elseif(a&&!b)returndoA();elseif(!a&&b)returndoB();elseif(!a&&!b)returndoNotANotB();elsethrownewException("Welldone,youdefeatedbooleanlogic!");}编译器坚持最后一个else子句。但从真值表的角度来看,这是不可能的状态。是的,它有效,是的,我可以接受它。但我想知道C#中是否有某种机制可以避免这种代码,或者我

c# - 如何从 C# 中的异步任务 <bool> 函数获取 bool 结果 - 错误 : Cannot implicitly convert type `void' to `bool'

我已经创建了任务函数来验证我的json文件。一切正常,直到我没有使用结果。当我试图从asynctaskfunction获得结果时它显示错误为Cannotimplicitlyconvert'void'tobool.我的异步函数如下:privateasyncTaskMyValidationFunction(stringjson){boolisValid=true;.......DOINGMYVALIDATIONSTUFF.....returnisValid;}从另一个函数调用这个函数如下:publicboolGetJsonAndValidate(){boolisValid=true;str

C#,运算符 '*' 不能应用于类型 'double' 和 'decimal' 的操作数

这个错误应该是一个简单的错误,但我似乎无法让它工作。问题在于这个完全相同的代码在程序的早期工作。我看不出有任何理由让它在此实例上而不是前四个实例上发送错误。引用下面的代码,并随时提出您可能有的任何批评,因为它应该会让我变得更好。如果重要的话,我正在使用SharpDevelop2.2。这是一个有效的代码示例:voidcalc2Click(objectsender,EventArgse){if(!String.IsNullOrEmpty(tb2_fla.Text)&String.IsNullOrEmpty(tb2_e.Text)|String.IsNullOrEmpty(tb2_fla.T

c# - 或,与运算符

新手问题。如何计算公式AfB的值,其中f-二元函数OR或AND? 最佳答案 条件运算符&&和||是有区别的和bool运算符&和|。主要是优先级的差异(首先评估哪些运算符)以及&&和||正在“逃跑”。这意味着这是一个序列,例如...cond1&&cond2&&cond3如果cond1为假,则不会对cond2或cond3求值,因为代码正确地假定无论它们的值是多少,表达式都不可能为真。同样……cond1||cond2||cond3如果cond1为真,则不会计算cond2或cond3,因为无论它们的值是什么,表达式都必须为真。按位对应的&和

c# - 如何在不循环的情况下使用 System.TimeSpan 值实现模数运算?

我在我的代码(C#/WPF)中对性能非常敏感的部分,我需要以最快的方式在两个System.TimeSpan值之间执行取模运算。此代码每秒将运行数千次,我非常愿意不惜一切代价避免使用手动循环计算。两个TimeSpans之间的模数的想法可能看起来有点奇怪,所以请允许我解释一下-说我们有时间跨度A=1分30秒时间跨度B=20秒以下是常见操作及其合理结果的列表:A+B=(TimeSpan)1分50秒A-B=(TimeSpan)1分10秒A*B=没有合理的计算方法我们应该能够将TimeSpan乘以一个整数。A*5=(TimeSpan)7分30秒Microsoft尚未实现TimeSpans和整数之

c# - .NET 中的运算符重载

在什么情况下您会考虑在.NET中重载运算符? 最佳答案 我会强烈考虑在我覆盖Equals的任何地方重载==和!=我会考虑(不太强烈)在我实现IComparable的任何地方重载比较运算符我会考虑为基本数字类型重载算术运算符我会考虑为“包装”类型(如Nullable)提供显式转换我非常很少考虑提供隐式转换黄金法则是不要在含义不完全明显时重载运算符。例如,我认为在Stream上使用+运算符会很奇怪。-它可能意味着“在这里制作一个可写的T,以便写入结果写入两者”或者它可能意味着“一个接一个地读取”或者可能是其他东西。根据我的经验,除了==